﻿#定义数组存储所有矩形x,y坐标的数组
x_all = []
y_all = []
#定义数组存储所有矩形的左上角和右下角坐标
recs = []
#读取输入：3行输入分别为3个矩形的位置，分别代表“左上角x坐标”，“左上角y坐标”，“矩形宽”，“矩形高” -1000 <= x,y < 1000
for _ in range(3):
    x1,y1,w,h = map(int,input().split())
    #计算右下角x,y坐标,注意w向右x1+w,h向下则y1-h
    x2 = x1 + w
    y2 = y1 - h
    x_all += [x1,x2]    #注意：使用append应为append(x1),append(x2)
    y_all += [y1,y2]
    recs.append((x1,y1,x2,y2))
#计算矩形区域的最小和最大x坐标
min_x,max_x = min(x_all),max(x_all)
#计算矩形区域的最小和最大y坐标
min_y,max_y = min(y_all),max(y_all)
#计算x,y坐标的偏移量即将最小x,y坐标移到0坐标以对应数组索引0
x_offset = 0 - min_x
y_offset = 0 - min_y
#创建表示矩形区域的二维数组
rec_areas = [[0] * abs(max_y - min_y) for _ in range(abs(max_x - min_x))]

#遍历存储矩形左上角和右下角坐标的数组，计算重叠区域
for x1,y1,x2,y2 in recs:
    for i in range(min(x1,x2) + x_offset,max(x1,x2) +x_offset):
        for j in range(min(y1,y2) + y_offset,max(y1,y2) + y_offset):
            rec_areas[i][j] += 1
#输出重合区域
count = 0
for i in range(len(rec_areas)):
    for j in range(len(rec_areas[i])):  #选择0还是i是否一样，需测试,实测应为i
        if rec_areas[i][j] == 3:
            count += 1
print(count)    #输出相交的面积

